﻿//###HEADER###
//Title: RevitPlus
//Description of Program: Utilzing Revit geometry and properties, user is able to perform an EnergyPlus calculation within Revit.
//Class:StoredVariables
//Description of Class:   Defines variables used in other classes(ie BatchFiler). Where appropriate, a default value is given. 
//       
//By: Steve Chick & Alexander Bernstein
//Date: 12/18/2012
//Version: 001

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;

namespace Revit_Addin1
{

    public static class StoredVariables
    {
        public static List<String> EPlusVersions = new List<String>();
        public static String EplusVersion = ""; 
        public static String ProjectName = "Untitled";
        public static String NorthAxis = "0";
        public static String Terrain = "Suburbs";
        public static String LoadTolerance = "0.04";
        public static String TempTolerance = "0.4";
        public static String SolarDistribution = "FullInteriorAndExterior";
        public static String WarmpupMax = "25";
        public static String WarmpupMin = "6";
        public static String WeatherFile = null;
        public static String CoolSetPt = "24";
        public static String HeatSetPt = "20";
        public static String StMonth = "1";
        public static String StDay = "1";
        public static String EndMonth = "12";
        public static String EndDay = "31";
        public static String Time = "Monthly";

        //TimeStamp
        public static String TimeStepHrs = "4";

        //WeatherFile
        public static String LocationName = "Chicago_IL_USA";

       

        //Construction
        //Revit Floor Materials
        public static List<String> FloorTypes = new List<String>();
        public static List<String> FloorRoughness = new List<String>();
        public static List<double> FloorThermalResistance = new List<double>();
        public static List<double> FloorThermalAbsorptance = new List<double>();
        public static List<double> FloorSolarAbsorptance = new List<double>();
        public static List<double> FloorVisibleAbsorptance = new List<double>();

        //Revit Wall Materials
        public static List<String> WallTypes = new List<String>();
        public static List<String> WallRoughness = new List<String>();
        public static List<double> WallThermalResistance = new List<double>();
        public static List<double> WallThermalAbsorptance = new List<double>();
        public static List<double> WallSolarAbsorptance = new List<double>();
        public static List<double> WallVisibleAbsorptance = new List<double>();

        //Revit Roof Materials
        public static List<String> RoofTypes = new List<String>();
        public static List<String> RoofRoughness = new List<String>();
        public static List<double> RoofThermalResistance = new List<double>();
        public static List<double> RoofThermalAbsorptance = new List<double>();
        public static List<double> RoofSolarAbsorptance = new List<double>();
        public static List<double> RoofVisibleAbsorptance = new List<double>();

        //Revit Current Materials
        public static List<String> Types = new List<String>();
        public static List<String> Roughness = new List<String>();
        public static List<double> ThermalResistance = new List<double>();
        public static List<double> ThermalAbsorptance = new List<double>();
        public static List<double> SolarAbsorptance = new List<double>();
        public static List<double> VisibleAbsorptance = new List<double>();

        //Revit Room Attributes
        public static List<String> Roomnames = new List<string>();

        //Revit Construction List
        public static List<ElementId> RoomIds = new List<ElementId>();
        public static List<ElementId> WallIds = new List<ElementId>();
        public static List<List<List<String>>> WallBoundary = new List<List<List<string>>>();
        public static List<int> WallIndex = new List<int>();
        public static List<int> WallFunction = new List<int>();
        public static List<List<String>> RoofBoundary = new List<List<string>>();
        public static List<int> RoofIndex = new List<int>();
        public static List<List<String>> FloorBoundary = new List<List<string>>();
        public static List<int> FloorIndex = new List<int>();
    }
}